package com.ruoyi.system.api.mapper;

import com.ruoyi.system.api.domain.ServiceDetails;
import org.apache.ibatis.annotations.Param;

import java.lang.reflect.Method;
import java.util.List;

/**
 * 工程师FSE计划详情 工程师FSE计划详情（服务通知子）Mapper接口
 * 
 * @author shihx
 * @date 2020-03-07
 */
public interface ServiceDetailsMapper 
{
    /**
     * 查询工程师FSE计划详情 工程师FSE计划详情（服务通知子）
     * 
     * @param id 工程师FSE计划详情 工程师FSE计划详情（服务通知子）ID
     * @return 工程师FSE计划详情 工程师FSE计划详情（服务通知子）
     */
    public ServiceDetails selectServiceDetailsById(Long id);

    /**
     * 查询工程师FSE计划详情 工程师FSE计划详情（服务通知子）列表
     * 
     * @param serviceDetails 工程师FSE计划详情 工程师FSE计划详情（服务通知子）
     * @return 工程师FSE计划详情 工程师FSE计划详情（服务通知子）集合
     */
    public List<ServiceDetails> selectServiceDetailsList(ServiceDetails serviceDetails);

    /**
     * 新增工程师FSE计划详情 工程师FSE计划详情（服务通知子）
     * 
     * @param serviceDetails 工程师FSE计划详情 工程师FSE计划详情（服务通知子）
     * @return 结果
     */
    public int insertServiceDetails(ServiceDetails serviceDetails);

    /**
     * 修改工程师FSE计划详情 工程师FSE计划详情（服务通知子）
     * 
     * @param serviceDetails 工程师FSE计划详情 工程师FSE计划详情（服务通知子）
     * @return 结果
     */
    public int updateServiceDetails(ServiceDetails serviceDetails);

    /**
     * 删除工程师FSE计划详情 工程师FSE计划详情（服务通知子）
     * 
     * @param id 工程师FSE计划详情 工程师FSE计划详情（服务通知子）ID
     * @return 结果
     */
    public int deleteServiceDetailsById(Long id);

    /**
     * 批量删除工程师FSE计划详情 工程师FSE计划详情（服务通知子）
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteServiceDetailsByIds(String[] ids);

    /**
     * 接受、拒绝、等更新状态操作
     * @methodName: updateMyServiceDetails
     * @description: TODO
     * @param serviceDetails
     * @return: int
     * @author: shihx
     * @date: 2020/3/7 9:20
    **/
    public int updateMyServiceDetails(ServiceDetails serviceDetails);

    /**
     *  查询服务单下实习人员列表
     *
     * @param serviceNo
     * @param fseName
     * @return java.util.List<com.ruoyi.system.api.domain.ServiceDetails>
     * @author yzg
     * @date 2020/3/23 3:58 下午
     */
    public List<ServiceDetails> selectTrainPeople(@Param("serviceNo") String serviceNo, @Param("fseName") String fseName);

    /**
     * 根据服务号和员工ID进行逻辑删除和恢复操作
     * @methodName: updateDelServiceDetails
     * @description: TODO
     * @param serviceDetails
     * @return: int
     * @author: shihx
     * @date: 2020-04-21 8:45
    **/
    public int updateDelServiceDetails(ServiceDetails serviceDetails);

}
